// HTTP 协议从开始立项到现在一共经历了 4 个版本: HTTP 0.9 -> HTTP 1.0 -> HTTP 1.1 -> HTTP 2

// HTTP 0.9 是一个最古老的版本
// 只支持GET请求方式：由于不支持其他请求方式，因此客户端是没办法向服务端传输太多的信息
// 没有请求头概念：所以不能在请求中指定版本号，服务端也只具有返回 HTML字符串的能力
// 服务端相响应之后，立即关闭TCP连接

// HTTP 1.0
// 请求方式新增了POST，DELETE，PUT，HEADER等方式
// 增添了请求头和响应头的概念，在通信中指定了 HTTP 协议版本号，以及其他的一些元信息 (比如: 状态码、权限、缓存、内容编码)
// 扩充了传输内容格式，图片、音视频资源、二进制等都可以进行传输
// 在这个版本主要的就是对请求和响应的元信息进行了扩展，客户端和服务端有更多的获取当前请求的所有信息，进而更好更快的处理请求相关内容

// HTTP 1.1
// 增加了缓存策略 cache-control | E-tag
// 支持长连接Connection:keep-alive ,一次Tcp连接多次请求
// 断点续传 状态206
// 在上传/下载资源时，如果资源过大，将其分割为多个部分，分别上传/下载，如果遇到网络故障，
// 可以从已经上传/下载好的地方继续请求，不用从头开始，提高效率
// 缓存处理
// 当浏览器请求资源时，先看是否有缓存的资源，如果有缓存，直接取，
// 不会再发请求，如果没有缓存，则发送请求。 通过设置字段cache-control来控制缓存。

// HTTP 2.0
// 可压缩header 减少体积
// 多路复用   一次tcp连接可以多个http并发请求

// HTTPS 和 HTTP
// HTTPS 协议需要申请证书
// HTTP 和 HTTPS 使用端口不一样，前者是80，后者是443
// HTTP 协议运行在 TCP 之上，所有传输的内容都是明文，HTTPS 运行在 SSL/TLS 之上，SSL/TLS运行在TCP之上，所有传输的内容都经过加密的
// HTTPS 可以有效的防止运营商劫持
